package cn.rwklyd.BookKeeping.service;

import cn.rwklyd.BookKeeping.pojo.Platform;
import cn.rwklyd.BookKeeping.pojo.Result;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

public interface PlatformService extends IService<Platform> {
    
    /**
     * 添加平台
     * @param platform 平台信息
     * @return 添加结果
     */
    Result<String> addPlatform(Platform platform);
    
    /**
     * 删除平台
     * @param id 平台ID
     * @return 删除结果
     */
    Result<String> deletePlatform(Long id);
    
    /**
     * 更新平台
     * @param platform 平台信息
     * @return 更新结果
     */
    Result<String> updatePlatform(Platform platform);
    
    /**
     * 根据ID获取平台
     * @param id 平台ID
     * @return 平台信息
     */
    Result<Platform> getPlatformById(Long id);
    
    /**
     * 分页获取当前用户的平台列表
     * @param page 页码
     * @param pageSize 每页大小
     * @param name 平台名称（可选，用于搜索）
     * @return 平台列表
     */
    Result<IPage<Platform>> getPlatformList(Integer page, Integer pageSize, String name);
    
    /**
     * 获取当前用户的所有平台
     * @return 平台列表
     */
    Result<List<Platform>> getAllPlatforms();
    
    /**
     * 多条件查询平台
     * @param id 平台ID (可选)
     * @param name 平台名称 (可选)
     * @param userId 用户ID (可选，管理员可查询特定用户的平台)
     * @param page 页码 (可选，默认1)
     * @param pageSize 每页大小 (可选，默认10)
     * @return 平台列表
     */
    Result<IPage<Platform>> queryPlatforms(Long id, String name, Long userId, Integer page, Integer pageSize);
    
    /**
     * 切换平台状态
     * @param id 平台ID
     * @return 更新结果
     */
    Result<String> updatePlatformStatus(Long id);
} 